home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 145 / Gekkan Dennou Club - 2000.6 Vol. 145 (Japan).7z / Gekkan Dennou Club - 2000.6 Vol. 145 (Japan) (Track 1).bin / games / spassion / source.lzh / SOURCE / SHOT.H < prev    next >
Text File  |  2000-03-31  |  2KB  |  58 lines

  1. #ifndef SHOT_X
  2. #define SHOT_X    (*((short *) (&shot->lx)))    /*lxの上位ワード*/
  3. #define SHOT_Y    (*((short *) (&shot->ly)))    /*lyの上位ワード*/
  4. #endif
  5.  
  6. typedef struct SHOT{
  7.     signed short x, y;                /* 座標 */
  8.     short    pt;                        /* スプライトパターンNo. */
  9.     short    info;                    /* 反転コード・色・優先度を表わすデータ */
  10.     signed int lx, ly;                /* 32bit X,Y 座標 ( l = longword ) */
  11.     signed int vx, vy;                /* 速度 */
  12.     short    *pt_;                    /* スプライトパターンNo.へのポインタ */
  13.     signed short hit_x, hit_y;        /* 当たり判定の範囲 */
  14.     BOX_PTR    box,old_box;            /* レーザーなどに使う */
  15.  
  16.     short    type;                    /* 武器の種類 */
  17.     short    pow;                    /* 攻撃力 */
  18.     short    penetration;            /* 貫通するか? */
  19.     short    damage;                    /* 敵に当たったら = !0 */
  20.     short    anim_count;                /* アニメーションカウント */
  21.     short    count;                    /* 汎用カウンタ */
  22.     short    arg;                    /* 引数 */
  23.     short (*func_shot_move)( struct SHOT * );    /* 弾の動き用関数 */
  24.     struct PLAYER *player;            /* 武器を発射したプレイヤー */
  25.     struct SHOT *next,*pre;            /* リスト */
  26. }SHOT;
  27.  
  28. /* ショットの情報 */
  29. typedef struct SHOTINFO{
  30.     short    pow;                    /* 攻撃力 */
  31.     short    *pt;                    /* スプライト番号 */
  32.     short    info;                    /* パレット、反転、プライオリティ情報 */
  33.     HIT_XY    *hit;                    /* 当たり判定の大きさ */
  34.     short    interval;                /* 連射間隔 */
  35.     short    penetration;            /* 貫通するか? */
  36.     short (*func_shot_make)( struct PLAYER *,short opt_num );    /* 弾の生成用関数 */
  37.     short (*func_shot_move)( struct SHOT * );    /* 動き用の関数 */
  38.     short    sd_no;                    /* 発射されたときの音番号 */
  39. }SHOTINFO;
  40.  
  41.  
  42. #ifdef GLOBAL_DEFINE        /* グローバル変数の定義と宣言を1つにまとめるテク */
  43. #define Extern            /* Extern をヌル文字列に置換 */
  44. #else
  45. #define Extern extern        /* Extern を extern に置換 */
  46. #endif
  47.  
  48. /* shot_alloc & shot_free 用 */
  49. Extern SHOT  *shot_free;
  50. Extern SHOT  *shot_top;
  51. Extern short shot_used_num;    /* 今、使っている数 */
  52.  
  53. void    InitShot0( void );
  54. void    InitShot( void );
  55. SHOT    *MakeShot( int vx, int vy, SHOTINFO * );
  56. void    MoveShot( void );
  57. SHOT    *EraseShot( SHOT *shot );
  58.